﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using itau.im.entidade;
using itau.im.dado;
using EnterpriseLibraryWrapper;

namespace itau.im.negocio
{
    public class ConfiguracoesBS : IConfiguracoesBS
    {

        #region Métodos

        public string ObterConfiguracaoPorDominioEChave(string dominioAplicacao, string chave)
        {
            try
            {
                IConfiguracoesDAO objDAO = DaoFactory.getConfiguracoesDAO();
                return objDAO.ObterConfiguracaoPorDominioEChave(dominioAplicacao, chave);
            }
            catch (DadosException ex)
            {
                EnterpriseLibraryFactory.GetExceptionHandler().HandleException(ex, "ErrosNegocios");
            }
            catch (NegociosException ex)
            {
                EnterpriseLibraryFactory.GetExceptionHandler().HandleException(ex, "ErrosNegocios");
            }
            catch (Exception ex)
            {
                EnterpriseLibraryFactory.GetExceptionHandler().HandleException(ex, "ErrosNegocios");
            }

            return string.Empty;
        }

        public void AtualizarConfiguracao(string dominioAplicacao, string chave, string valor)
        {
            try
            {
                IConfiguracoesDAO objDAO = DaoFactory.getConfiguracoesDAO();
                objDAO.AtualizarConfiguracao(dominioAplicacao, chave, valor);
            }
            catch (DadosException ex)
            {
                EnterpriseLibraryFactory.GetExceptionHandler().HandleException(ex, "ErrosNegocios");
            }
            catch (NegociosException ex)
            {
                EnterpriseLibraryFactory.GetExceptionHandler().HandleException(ex, "ErrosNegocios");
            }
            catch (Exception ex)
            {
                EnterpriseLibraryFactory.GetExceptionHandler().HandleException(ex, "ErrosNegocios");
            }
        }

        public List<Item> ObterMapaConfiguracoesPorDominio(string dominio)
        {
            List<Item> listaRetorno = null;

            try
            {
                IConfiguracoesDAO objDAO = DaoFactory.getConfiguracoesDAO();
                listaRetorno = objDAO.ObterMapaConfiguracoesPorDominio(dominio);

                return listaRetorno;
            }
            catch (DadosException ex)
            {
                EnterpriseLibraryFactory.GetExceptionHandler().HandleException(ex, "ErrosNegocios");
            }
            catch (NegociosException ex)
            {
                EnterpriseLibraryFactory.GetExceptionHandler().HandleException(ex, "ErrosNegocios");
            }
            catch (Exception ex)
            {
                EnterpriseLibraryFactory.GetExceptionHandler().HandleException(ex, "ErrosNegocios");
            }
            finally
            {
                listaRetorno = null;
            }

            return new List<Item>();
        }

        #endregion

    }
}
